package com.lanou3g.code0420;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * Created by dllo on 18/4/20.
 */
public class Server {
    //ECHO服务器(单用户连接)
    //ECHO服务器是常见的一种小型服务器
    //作用:将客户端发送的数据,原封不动的在发回给客户端
    //     这样,客户端可以方便的判断服务器是否好用
    //并发ECHO服务器(支持多用户连接)
    public static void main(String[] args) {
        try {
            //创建一个Socket服务器对象
            //在创建的时候绑定端口号
            //注意如果你重复运行该代码
            //会出现端口号被占用异常
            ServerSocket ss = new ServerSocket(2333);
            System.out.println("服务器已启动,等待连接");
            while (true) {
                Socket client = ss.accept();
                //accept()方法是Socket服务器等待
                //客户端的入,如果没有客户端的介入
                //则代码会在这一行一直等下去
                //client.getRemoteSocketAddress()可以获得客户端的IP地址和端口号
                System.out.println("有一个客户端接入:" +client.getRemoteSocketAddress());
                //为每一个客户端创建线程
                new EchoThread(client).start();
            }
//            OutputStream os = client.getOutputStream();
//            InputStream in = client.getInputStream();
//            PrintWriter pw = new PrintWriter(new OutputStreamWriter(os));
//            BufferedReader reader = new BufferedReader(new InputStreamReader(in));
//
//            //只要客户端没有断开连接
//            String line = "";
//            while ((line = reader.readLine()) != null) {
//                String echo = "ECHO:" + line;
//                pw.println(echo);
//                pw.flush();
//            }

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
